package crazyjava;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ExecutorsDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//ExecutorService threadPool = Executors.newFixedThreadPool(3);
		//ExecutorService threadPool = Executors.newCachedThreadPool();
		ExecutorService threadPool = Executors.newSingleThreadExecutor();
		for(int i =1;i<=9;i++){
			final int task = i;
			threadPool.execute(new Runnable() {
				
				public void run() {
					for(int j=1;j<=10;j++){
						System.out.println(Thread.currentThread().getName()+" is running "+j+" for task "+task);
					}
					
				}
			});
		}
		threadPool.shutdown();
		Executors.newScheduledThreadPool(3).scheduleWithFixedDelay(new Runnable() {
			
			public void run() {
				System.out.println("doing");
				
			}
		}, 5, 2, TimeUnit.SECONDS);
	}

}
